#include "customreactionplate.h"

CustomReactionPlate::CustomReactionPlate(QWidget *parent) :
    QTableWidget(parent)
{
    // 是否为双击事件
    this->isDbClick = false; // 默认不是
}

CustomReactionPlate::~CustomReactionPlate(){

}

/* 鼠标释放事件 */
void CustomReactionPlate::mouseReleaseEvent(QMouseEvent *event){
    // 调用基类的方法以确保其他事件处理逻辑正常
    QTableWidget::mouseReleaseEvent(event);

    this->sleep(200); // 等待100ms
    if(!this->isDbClick){ // 判断是否不是双击事件
        emit CustomReactionPlate::repMouseRelease(); // 反应板鼠标释放
    }
}

/* 鼠标双击事件 */
void CustomReactionPlate::mouseDoubleClickEvent(QMouseEvent *event){
    // 调用基类的方法以确保其他事件处理逻辑正常
    QTableWidget::mouseDoubleClickEvent(event);

    LOG << "双击触发";

    this->isDbClick = true; // 双击事件变量触发
    this->sleep(50); // 50ms休眠
    this->isDbClick = false; // 双击事件变量释放
}

/* 休眠函数 */
void CustomReactionPlate::sleep(int msec){
    QTime dieTime = QTime::currentTime().addMSecs(msec);
    while( QTime::currentTime() < dieTime)
        QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
}
